/*
 * @Author: HeAo
 * @Date: 2022-09-21 10:11:43
 * @LastEditTime: 2022-09-21 15:44:11
 * @LastEditors: HeAo
 * @Description: 
 * @FilePath: \第二阶段\ES6\day07\2-抽象类.ts
 * 别乱动！
 */
// 抽象类 存在抽象方法-没有方法体(花括号{})的方法
// 特点：无法实例化对象、可以存在抽象方法和非抽象方法
// 存在的意义： 让其它类继承抽象类
// 子类继承抽象类的方法：子类包含抽象类的方法和属性、
abstract class Person1 {
  abstract study(): void
  log(): void {
    console.log('我不是抽象方法');
  }
}
// 体现无法实例化对象
// let p = new Person1()
// 子类继承抽象类 两种方式
// 1、实现抽象类中的抽象方法
// 2、子类成为抽象类
class Student1 extends Person1 {

  study(): void {
    console.log('我是student');
  }
  cook(): void {
    console.log('做饭');

  }
}
let stu: Student1 = new Student1()
stu.study()
stu.cook()
stu.log()
// 2、自身也成为抽象类
// abstract class Student2 extends Person1 {

// }